#pragma once
#include <vector>
#include <fstream>
#include "stdlib.h"
#include <windows.h>
#include <stdio.h>
#include <Regex>
#include "Monitor.h"

//FileService
#include "StringHelper.h"
#include "FileCommon.h"

using namespace std;

#define LOG_TIMER				2000	
#define IDC_MAIN_STATUSBAR		2001

#define WM_SYSTEMTRAY			(WM_USER+5)
#define WM_USER_SUCCEED			(WM_USER + 1000) 
#define WM_USER_FAILED			(WM_USER + 1001) 		
#define WM_USER_START			(WM_USER + 1002) 	
#define WM_USER_STOP			(WM_USER + 1003)
#define WM_USER_AUTOSTART		(WM_USER + 1004) 
#define WM_USER_EXPORTED		(WM_USER + 1005)   
#define WM_USER_STATUS			(WM_USER + 1006)   

struct MonitorParameter 
{
	int ID;
	wstring name;
	wstring directory;
	int status;
};

struct ThreadParameters
{
	wstring monitorDir;
	wstring monitorName;
	wstring monitorID;
	Monitor *monitor;
	DWORD filter;
	CWinThread* outputThread;
	CDialog *dlg;
};

struct ThreadItem
{
	CWinThread* thread;
	ThreadParameters paras;
};